import 'dart:io';

void main(){
  print('hello world');
// test();
test2();
   print('这是不能被阻塞的代码');
}
// test (){
//   login().then((token){
//      setToken(token).then((res){
//       if(res){
//          print('保存token成功');
//        }else{
//         print('保存token失败');
//        }
//      }).catchError((e){
//        print(e);
//      });
//    }).catchError((error){
//     print(error);
//    });
// }
// async await 语法糖
test2() async{
try{
 String token=  await login();
 bool res= await setToken(token);
 if(res){
  print('登录并保存token成功');
 }else{
  print('保存token失败');
 }

}catch(e){
  print(e);
}
 
}
Future<String> login(){
  return Future((){
    print('正在登陆中...');
    sleep(Duration(seconds: 3));
    print('登录成功');
    // 捕获异常
      throw Exception('网络请求出现错误');
      // 成功返回的token
    // return 'token1234';
  });
}
Future<bool> setToken(String token){
  return Future<bool>((){
    print('正在保存token...');
    sleep(Duration(seconds: 2));
    print('保存成功');
    return true;  
  });
}